package mx.beans;

import mx.bd.BDManager;
import mx.bd.BDObject;
import mx.bd.async.image.ImageCreateTask;
import mx.bd.async.image.ImageUpdateTask;
import mx.util.ImageFetcher;
import android.graphics.Bitmap;

public class Image implements BDObject{
	
	Long id;	
	Bitmap image;
	String uri;
	long idPadre;
	
	public Image(long id, String uri){
		this.id = Long.valueOf(id);
		this.uri = uri;
	}
	
	public Image(String urlImage) {
		this.image = fetchImage(urlImage);
		//punial, yo quiero el nombre del archivo que guardaré en el sistema de archivos
		this.id = BDManager.getImageID(urlImage);
	}

	private Bitmap fetchImage(String urlImage) {
		return ImageFetcher.fecth(urlImage);
		
	}

	public void create(long idPadre) {
		// 
		// requiero del id padre para poder ligarlo al VGAME si no, la imagen queda en el limbo.7
		new ImageCreateTask().execute(this);
	}

	public void update() {
		
		// iWey!, se ejecuta un task asincrono, haciendole update a este Image bean.
		new ImageUpdateTask().execute(this);
		
	}

	public void delete(long idPadre) {
		//
		
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the image
	 */
	public Bitmap getImage() {
		return image;
	}

	/**
	 * @param image the image to set
	 */
	public void setImage(Bitmap image) {
		this.image = image;
	}

	/**
	 * @return the uri
	 */
	public String getUri() {
		return uri;
	}

	/**
	 * @param uri the uri to set
	 */
	public void setUri(String uri) {
		this.uri = uri;
	}

	/**
	 * @return the idPadre
	 */
	public long getIdPadre() {
		return idPadre;
	}

	/**
	 * @param idPadre the idPadre to set
	 */
	public void setIdPadre(long idPadre) {
		this.idPadre = idPadre;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "Image [id=" + id + ", uri=" + uri + ", idPadre=" + idPadre
				+ "]";
	}

	

}
